home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 011 / brutil.arc / LAST.ASM < prev    next >
Assembly Source File  |  1988-05-18  |  2KB  |  100 lines

  1. BUFSIZE EQU    32768
  2. CODE    SEGMENT
  3.     ASSUME    CS:CODE,DS:CODE
  4.     ORG    100H
  5. START:    CALL    GETCHR
  6.     JZ    ERXIT
  7. START1: MOV    CX,0
  8.     MOV    DI,OFFSET STR3+2
  9.     MOV    WORD PTR STR4,1
  10. LOOP3:    CALL    GETCHR
  11.     JZ    OKXIT
  12.     CMP    AL,13
  13.     JZ    ENDLIN
  14.     STOSB
  15.     INC    CX
  16.     MOV    WORD PTR STR3,CX
  17.     JMP    LOOP3
  18. ERXIT:    MOV    AX,4C01H
  19.     INT    21H
  20. OKXIT:    CMP    BYTE PTR DS:5DH,'-'
  21.     JZ    OKXIT1
  22.     MOV    CX,WORD PTR STR3
  23.     OR    CX,CX
  24.     JZ    NOT3A
  25.     MOV    DX,OFFSET STR3+2
  26.     CALL    PUTLIN
  27. NOT3A:    MOV    CX,2
  28.     MOV    DX,OFFSET STR4+2
  29.     CALL    PUTLIN
  30. OKXIT1: MOV    AX,4C00H
  31.     INT    21H
  32. ENDLIN: MOV    WORD PTR STR3,CX
  33.     CALL    GETCHR
  34.     JZ    OKXIT
  35.     MOV    WORD PTR STR4,2
  36.     CMP    AL,10
  37.     JZ    BYPLF
  38.     MOV    WORD PTR STR4,1
  39. BYPLF:    PUSH    WORD PTR STR4
  40.     CALL    GETCHR
  41.     JZ    OKXIT
  42.     POP    WORD PTR STR4
  43.     CMP    BYTE PTR DS:5DH,'-'
  44.     JNZ    START1
  45.     OR    CX,CX
  46.     JZ    NOT3
  47.     MOV    DX,OFFSET STR3+2
  48.     CALL    PUTLIN
  49. NOT3:    MOV    CX,WORD PTR STR4
  50.     MOV    DX,OFFSET STR4+2
  51.     CALL    PUTLIN
  52.     JMP    START1
  53. GETCHR: CMP    WORD PTR STR4,1
  54.     JNZ    NOPREV
  55.     MOV    AL,LASTCH
  56.     MOV    WORD PTR STR4,2
  57.     JMP    SHORT NOREAD
  58. NOPREV: PUSH    CX
  59.     MOV    CX,BUFLEFT
  60.     OR    CX,CX
  61.     JNZ    RDCHR
  62.     SUB    BX,BX
  63.     MOV    CX,BUFSIZE
  64.     MOV    DX,OFFSET CHAR
  65.     MOV    AH,63
  66.     INT    21H
  67.     OR    AX,AX
  68.     POP    CX
  69.     JZ    GETXIT
  70.     MOV    SI,OFFSET CHAR
  71.     PUSH    CX
  72.     MOV    CX,AX
  73. RDCHR:    LODSB
  74.     DEC    CX
  75.     MOV    BUFLEFT,CX
  76.     POP    CX
  77.     MOV    LASTCH,AL
  78. NOREAD: CMP    AL,26
  79. GETXIT: RET
  80. PUTLIN: MOV    BX,1
  81.     MOV    AH,64
  82.     INT    21H
  83.     RET
  84. BUFLEFT DW    0
  85. LASTCH    DB    ?
  86. STR4    DW    2
  87.     DB    13,10
  88. STR3    LABEL    BYTE
  89. CHAR    EQU    STR3+512
  90. CODE    ENDS
  91.     END    START
  92. 4
  93.     INT    21H
  94.     RET
  95. BUFLEFT DW    0
  96. LASTCH    DB    ?
  97. STR4    DW    2
  98.     DB    13,10
  99. STR3    LABEL    BYTE
  100. CHAR    EQU    STR3+